package com.matace.keychain.domain;

/**
 * 用户仓库接口
 * 定义了用户相关的数据操作方法
 */
public interface UserRepository {
    /**
     * 通过邮箱登录
     * @param username 用户名
     * @param password 密码
     * @return 登录是否成功
     */
    boolean loginByEmail(String username, String password);

    /**
     * 通过用户名登录
     * @param username 用户名
     * @param password 密码
     * @return 登录是否成功
     */
    boolean loginByName(String username, String password);

    /**
     * 获取保存的用户名
     * @return 保存的用户名
     */
    String getSavedUsername();

    /**
     * 获取保存的密码
     * @return 保存的密码
     */
    String getSavedPassword();

    /**
     * 检查是否记住登录状态
     * @return 是否记住登录
     */
    boolean isRememberMe();

    /**
     * 保存用户登录凭证
     * @param username 用户名
     * @param password 密码
     */
    void saveCredentials(String username, String password);

    /**
     * 清除保存的登录凭证
     */
    void clearCredentials();
}